/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：UICompositeDateBox.js<br>
 * 日期：2016年8月24日<br>
 * 作者: 杜劝劝<br>
 * 功能：DateBox组件<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/

window.makeNamespace(window,"Rainier.UI.V2");


/**
 * 类型名称：Rainier.UI.V2.UICompositeDateBox<br>
 * 类型功能：布局类声明<br>
 * 接口函数：<br>
 * 成员变量：<br>
 */
Rainier.UI.V2.UICompositeDateBox = Rainier.UI.V2.UIComposite.extend({
	
	NAME : "Rainier.UI.V2.UICompositeDateBox",
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.init<br>
	 * 函数功能：构造函数<br>
	 * 参数输入：objParentComposite  	父组件实例<br>
	 * 参数输入：objProperties		 	
	 * {
	 * 		panelWidth     : "300",		            //下拉面板的宽度
	 * 		okText         : "我是按钮上的文本",		    //确定按钮上显示的文本
	 *   	sharedCalendar : "#sc"					//多个日期框（datebox）组件使用的共享日历
	 * 		formatter 	   : function(date){		//格式化日期的函数，该函数有一个 'date' 参数，并返回一个字符串值
								var y = date.getFullYear();
								var m = date.getMonth()+1;
								var d = date.getDate();
								return m+'/'+d+'/'+y;
							}						
	 * }	
	 * 异常信息：<br>
	 */
	init : function(objParentComposite,objProperties){
		//使用父类初始化子类对象
		this._super(objParentComposite,objProperties);
	},

	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.appendEventHandler<br>
	 * 函数功能：添加事件代理<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	appendEventHandler : function(){		
		this.m_aEventList = ['onSelect'
		                     ];
		this._super();
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.createComposite<br>
	 * 函数功能：创建组件<br>
	 * 参数输入：eleParent   父组件节点元素<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	//
	createComposite : function(eleParent){
		this._super(eleParent);		
		var newEle = this.CreateElement("input",this.m_objProperties.id);
		eleParent.append(newEle);
		newEle.datebox(this.m_objProperties);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.callUiMethod<br>
	 * 函数功能：添加事件代理<br>
	 * 参数输入：sMethod 方法名称
	 * 参数输入：objArgs 方法参数
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	callUiMethod : function(sMethod,objArgs){
		return this.getElement().datebox(sMethod,objArgs);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.options<br>
	 * 函数功能：返回选项（options）对象<br>
	 * 参数输入：无<br>
	 * 参数输入：<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	options : function(){
		return this.getElement().datebox('options');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.calendar<br>
	 * 函数功能：获取日历（calendar）对象<br>
	 * 参数输入：无
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	calendar : function(){
		return this.getElement().datebox('calendar');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.setValue<br>
	 * 函数功能：设置组件的值<br>
	 * 参数输入：value  如'6/1/2012'<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	setValue : function(value){
		return this.getElement().datebox('setValue',value);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.cloneFrom<br>
	 * 函数功能：从一个已存在的datebox复制一份<br>
	 * 参数输入：id 已存在的datebox的id<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	cloneFrom : function(id){
		this.getElement().datebox('cloneFrom',"#"+id);		
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.panel<br>
	 * 函数功能：返回下拉面板对象<br>
	 * 参数输入：无
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	panel : function(){
		return this.getElement().datebox('panel');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.textbox<br>
	 * 函数功能：返回文本框对象<br>
	 * 参数输入：无
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	textbox : function(){
		return this.getElement().datebox('textbox');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.resize<br>
	 * 函数功能：调整组件的宽度<br>
	 * 参数输入：sWideh 如"width:20"
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	resize : function(sWideh){
		return this.getElement().datebox('resize',sWideh);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.showPanel<br>
	 * 函数功能：显示下拉面板<br>
	 * 参数输入：无
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	showPanel : function(){
		return this.getElement().datebox('showPanel');
	},
	 
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.destroy<br>
	 * 函数功能：销毁组件<br>
	 * 参数输入：无
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	destroy : function(){
		return this.getElement().datebox('destroy');
	},
	
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.hidePanel<br>
	 * 函数功能：隐藏下拉面板<br>
	 * 参数输入：无
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	hidePanel : function(){
		return this.getElement().datebox('hidePanel');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.disable<br>
	 * 函数功能：禁用组件<br>
	 * 参数输入：无
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	disable : function(){
		return this.getElement().datebox('disable');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.enable<br>
	 * 函数功能：启用组件<br>
	 * 参数输入：无
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	enable : function(){
		return this.getElement().datebox('enable');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.readonly<br>
	 * 函数功能：启用/禁用只读模式<br>
	 * 参数输入：mode 布尔类型：ture/false
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	readonly : function(mode){
		return this.getElement().datebox('readonly',mode);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.clear<br>
	 * 函数功能：清除组件的值<br>
	 * 参数输入：无
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	clear : function(){
		return this.getElement().datebox('clear');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.reset<br>
	 * 函数功能：重置组件的值<br>
	 * 参数输入：无
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	reset : function(){
		return this.getElement().datebox('reset');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.getText<br>
	 * 函数功能：获取输入的文本<br>
	 * 参数输入：无
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	getText : function(){
		return this.getElement().datebox('getText');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.setText<br>
	 * 函数功能：设置文本值<br>
	 * 参数输入：sValue
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	setText : function(sValue){
		return this.getElement().datebox('setText',sValue);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.getValues<br>
	 * 函数功能：获取组件的值的数组<br>
	 * 参数输入：sValue：'sun'<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	getValues : function(){
		return this.getElement().datebox('getValues');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.setValues<br>
	 * 函数功能：设置组件的值的数组<br>
	 * 参数输入：aValues ：[12,23,34]<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	setValues : function(aValues){
		return this.getElement().datebox('setValues',aValues);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.getValue<br>
	 * 函数功能：获取组件的值<br>
	 * 参数输入：无
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	getValue : function(){
		return this.getElement().datebox('getValue');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.button<br>
	 * 函数功能：返回按钮对象<br>
	 * 参数输入：无
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	button : function(){
		return this.getElement().datebox('button');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.initValue<br>
	 * 函数功能：添加事件代理<br>
	 * 参数输入：sValue:"sun"<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	initValue : function(sValue){
		return this.getElement().datebox('initValue',sValue);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.getIcon<br>
	 * 函数功能：添加事件代理<br>
	 * 参数输入：nIndex：5<br>
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	getIcon : function(nIndex){
		return this.getElement().datebox('getIcon',nIndex);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.validate<br>
	 * 函数功能：验证输入的值<br>
	 * 参数输入：无
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	validate : function(){
		return this.getElement().datebox('validate');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.isValid<br>
	 * 函数功能：返回验证结果<br>
	 * 参数输入：无
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	isValid : function(){
		return this.getElement().datebox('isValid');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.enableValidation<br>
	 * 函数功能：<br>
	 * 参数输入：无
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	enableValidation : function(){
		return this.getElement().datebox('enableValidation');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.disableValidation<br>
	 * 函数功能：添加事件代理<br>
	 * 参数输入：无
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	disableValidation : function(){
		return this.getElement().datebox('disableValidation');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeDateBox.resetValidation<br>
	 * 函数功能：添加事件代理<br>
	 * 参数输入：无
	 * 函数返回：无<br>
	 * 异常信息：<br>
	 */
	resetValidation : function(){
		return this.getElement().datebox('resetValidation');
	}
});